home *** CD-ROM | disk | FTP | other *** search
/ Enter 2006 October / Enter 10 2006.iso / boot / isolinux / initrd / in / bin / network < prev    next >
Encoding:
Text File  |  2004-09-23  |  5.2 KB  |  194 lines

  1. #!/bin/sh
  2. # This script configures support for ethernet cards needed during
  3. # installation for an NFS install.
  4. #
  5. # Normally this automatically loads an image from the ISO, and if
  6. # it cannot be found tries to load a floppy disk.
  7. #
  8. # You may also give a path to the network.dsk image, like this:
  9. # network /some/exact/path/network.dsk
  10. #
  11.  
  12. echo
  13. echo "Network support for NFS install, 23-Sep-2004 volkerdi@slackware.com"
  14. echo
  15.  
  16. # To use a different floppy drive, set this variable first.
  17. if [ "$FLOPPY" = "" ]; then
  18.   FLOPPY="/dev/fd0"
  19. fi
  20. USEDFLOP=false
  21.  
  22. # Make a mount directory:
  23. mkdir -p /network
  24.  
  25. # First, we need to mount the network supplemental disk.
  26. while [ 0 ]; do
  27.   if [ -r /network/scripts/network.sh ]; then
  28.     umount /network
  29.   fi
  30.  
  31.   unset UMOUNTCDROM
  32.  
  33.   # Allow specifying the network.dsk image on the command line:
  34.   if [ ! "$1" = "" ]; then
  35.     echo -n "Searching for network.dsk in $1... "
  36.     if [ -r $1 ]; then
  37.       mount -o loop -o ro $1 /network
  38.       echo "found."
  39.       break
  40.     else
  41.       echo "not found."
  42.     fi
  43.   fi
  44.  
  45.   echo -n "Searching for network.dsk in /cdrom/isolinux/... "
  46.   if [ -r /cdrom/isolinux/network.dsk ]; then
  47.     mount -o loop -o ro /cdrom/isolinux/network.dsk /network
  48.     echo "found."
  49.     break
  50.   else
  51.     echo "not found."
  52.   fi
  53.  
  54.   echo -n "Searching for network.dsk in /cdrom/rootdisks/... "
  55.   if [ -r /cdrom/rootdisks/network.dsk ]; then
  56.     mount -o loop -o ro /cdrom/rootdisks/network.dsk /network
  57.     echo "found."
  58.     break
  59.   else
  60.     echo "not found."
  61.   fi
  62.  
  63.   echo "Attempting to mount CD-ROM..."
  64.  
  65.   # IDE device search:
  66.   for device in \
  67.     /dev/hdd /dev/hdc /dev/hdb /dev/hda /dev/hde /dev/hdf /dev/hdg /dev/hdh \
  68.     ; do
  69.     mount -o ro -t iso9660 $device /var/log/mount 1> /dev/null 2> /dev/null
  70.     if [ $? = 0 ]; then
  71.       UMOUNTCDROM=$device
  72.       break
  73.     fi
  74.   done
  75.   # SCSI device search:
  76.   if [ "$UMOUNTCDROM" = "" ]; then
  77.     for device in \
  78.       /dev/sr0 /dev/sr1 /dev/sr2 /dev/sr3 \
  79.       ; do
  80.       mount -o ro -t iso9660 $device /var/log/mount 1> /dev/null 2> /dev/null
  81.       if [ $? = 0 ]; then
  82.         UMOUNTCDROM=$device
  83.         break
  84.       fi
  85.     done
  86.   fi
  87.   # Long shot:
  88.   if [ "$UMOUNTCDROM" = "" ]; then
  89.     for device in \
  90.       /dev/pcd0 /dev/pcd1 /dev/pcd2 /dev/pcd3 \
  91.       ; do
  92.       mount -o ro -t iso9660 $device /var/log/mount 1> /dev/null 2> /dev/null
  93.       if [ $? = 0 ]; then
  94.         UMOUNTCDROM=$device
  95.         break
  96.       fi
  97.     done
  98.   fi
  99.  
  100.   echo -n "Searching for network.dsk in /cdrom/isolinux/... "
  101.   if [ -r /cdrom/isolinux/network.dsk ]; then
  102.     mount -o loop -o ro /cdrom/isolinux/network.dsk /network
  103.     echo "found."
  104.     break
  105.   else
  106.     echo "not found."
  107.   fi
  108.  
  109.   echo -n "Searching for network.dsk in /cdrom/rootdisks/... "
  110.   if [ -r /cdrom/rootdisks/network.dsk ]; then
  111.     mount -o loop -o ro /cdrom/rootdisks/network.dsk /network
  112.     echo "found."
  113.     break
  114.   else
  115.     echo "not found."
  116.   fi
  117.  
  118.   echo
  119.   echo "Loading network.dsk from floppy disk."
  120.   echo
  121.   echo "Please insert the network supplemental diskette (network.dsk), "
  122.   echo -n "and hit [enter] to continue."
  123.   read inputjunk;
  124.   echo
  125.   mount -t vfat $FLOPPY /network
  126.   if [ ! -r /network/scripts/network.sh ]; then
  127.     echo "ERROR:  /network/scripts/network.sh not found."
  128.     echo
  129.     echo "This does not appear to be the correct disk.  Please make sure"
  130.     echo "the network supplemental diskette (network.dsk) is in the floppy"
  131.     echo "drive, and hit enter to continue, or control-c to abort."
  132.     echo
  133.     if mount | fgrep network 1> /dev/null 2> /dev/null ; then
  134.       umount /network
  135.     fi
  136.   else
  137.     # Looks correct, but lets check the kernel version:
  138.     if [ ! -d /network/lib/modules/`uname -r` ]; then
  139.       echo "WARNING:"
  140.       echo "Can't find directory /network/lib/modules/`uname -r` on"
  141.       echo "disk.  This disk may be designed for use with a different Linux"
  142.       echo "kernel version than the one on your bootdisk.  This is the"
  143.       echo "module directory we found:"
  144.       echo "  `echo /network/lib/modules/*`"
  145.       echo "This disk is not likely to work with your kernel."
  146.       echo "Press enter to continue anyway, or Q to quit."
  147.       read inputjunk;
  148.       if [ "$inputjunk" = "q" -o "$inputjunk" = "Q" ]; then
  149.         umount /network
  150.         exit
  151.       fi
  152.     fi
  153.     # If we made it here, then all should be well.
  154.     break
  155.   fi
  156. done
  157.  
  158. # Now, let's call the network.sh script on the floppy disk to actually
  159. # do most of the work:
  160.  
  161. if [ -r /network/scripts/network.sh ]; then
  162.   sh /network/scripts/network.sh
  163. fi
  164.  
  165. # Now, try to make sure that /network gets unmounted...
  166. for try in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ; do
  167.   umount /network
  168.   if mount | grep "on /network " 1> /dev/null 2> /dev/null ; then
  169.     BAD=verybad
  170.   else
  171.     # good!
  172.     break
  173.   fi
  174.   sleep 5
  175. done
  176. rmdir /network
  177.  
  178. if [ ! "$UMOUNTCDROM" = "" ]; then
  179.   echo "Unmounting CD-ROM..."
  180.   umount /var/log/mount
  181. fi
  182.  
  183. if [ "$USEDFLOP" = "true" ]; then
  184.   echo
  185.   echo "You may now remove the network supplemental disk."
  186. fi
  187.  
  188. echo
  189. echo "The next step in your installation may be partitioning your hard drive"
  190. echo "(if you're installing to a Linux partition) with 'fdisk' or 'cfdisk'"
  191. echo "(the menu-driven version of fdisk).  If you already have a partition"
  192. echo "prepared for Linux, run 'setup' to start the installer program."
  193. echo
  194.